#!/usr/bin/python
# coding=UTF-8

# Выводит список активных кусков - кусков, не покрытых никаким другим куском.
# Использование: `ls /opt/clickhouse/data/merge/visits | active_parts.py`

import sys
import re

parts = {}
for s in sys.stdin.read().split():
	m = re.match('^([0-9]{6})[0-9]{2}_([0-9]{6})[0-9]{2}_([0-9]+)_([0-9]+)_([0-9]+)$', s)
	if m == None:
		continue
	m1 = m.group(1)
	m2 = m.group(2)
	i1 = int(m.group(3))
	i2 = int(m.group(4))
	l = int(m.group(5))
	if m1 != m2:
		raise Exception('not in single month: ' + s)
	if m1 not in parts:
		parts[m1] = []
	parts[m1].append((i1, i2, l, s))

for m, ps in sorted(parts.items()):
	ps.sort(key=lambda (i1, i2, l, s): (i1, -i2, -l))
	(x2, y2, l2, s2) = (-1, -1, -1, -1)
	for x1, y1, l1, s1 in ps:
		if x1 >= x2 and y1 <= y2 and l1 < l2 and (x1, y1) != (x2, y2): # 2 contains 1
			pass
		elif x1 > y2: # 1 is to the right of 2
			if x1 != y2 + 1 and y2 != -1:
				print # чтобы на глаз было видно пропущенные номера
			(x2, y2, l2, s2) = (x1, y1, l1, s1)
			print s1
		else:
			raise Exception('invalid parts intersection: ' + s1 + ' and ' + s2)
	print
